package LeetCode;

//编写代码，移除未排序链表中的重复节点。保留最开始出现的节点。
public class TesrInterview02_01 {
    public ListNode removeDuplicateNodes(ListNode head) {
        ListNode prev = head;
        while (prev!=null){
            ListNode cur = prev;
            while (cur.next!=null){
                if (prev.val==cur.next.val){
                    ListNode node = cur.next;
                    cur.next=node.next;
                    node.next=null;
                }else {
                    cur=cur.next;
                }
            }
            prev=prev.next;
        }
        return head;
    }
    //枚举法，有哈希表暂时不会
//        if (head == null) {
//            return head;
//        }
//        Set<Integer> occurred = new HashSet<Integer>();
//        occurred.add(head.val);
//        ListNode pos = head;
//        // 枚举前驱节点
//        while (pos.next != null) {
//            // 当前待删除节点
//            ListNode cur = pos.next;
//            if (occurred.add(cur.val)) {
//                pos = pos.next;
//            } else {
//                pos.next = pos.next.next;
//            }
//        }
//        pos.next = null;
//        return head;
}
